USB is a peripheral interface for attaching a wide variety of computing devices, such as, for example, personal computers, digital telephone lines, monitors, modems, mice, printers, scanners, game controllers, keyboards, and the like. The specifications defining USB (e.g., Intel et al., Universal Serial Bus Specification, Revision 1.0, January 1996; updated as Revision 1.1 in September 1998; further updated as Revision 2.0 in April 2000; further updated as Revision 3.0 in November 2008, and subsequent updates and modifications—hereinafter collectively referred to as the “USB Specifications”, which term can include future modifications and revisions) are non-proprietary and are managed by an open industry organization known as the USB Forum. The USB Specifications establish basic criteria that must be met in order to comply with USB standards. One of ordinary skill in the art will recognize many terms herein from the USB Specifications. Those terms are used herein in a similar manner to their use in the USB Specifications, unless otherwise stated.
It is a requirement of Revision 1.0 of the USB Specification that a single USB domain shall support up to 127 devices operating over a shared medium providing a maximum bandwidth of 12 Mbps. Revision 2.0 increases the maximum bandwidth to 480 Mbps while maintaining compatibility with devices manufactured under the criteria of Revision 1.1. Under Revision 3.0 of the USB Specifications, SuperSpeed connections are provided that use a 5 Gbps signaling rate. Under the USB Specifications, a host controller that supports a maximum signaling rate of 12 Mbps is referred to as a full-speed host. A host controller that supports a signaling rate of 480 Mbps is referred to as a high-speed host. A full-speed host controller conforming to the USB Specifications supports two classes of devices, namely, low-speed devices and full-speed devices. A high-speed host controller conforming to the USB Specifications supports three classes of devices, namely, low-speed devices, full-speed devices, and high-speed devices. Low-speed devices have a maximum signaling rate of 1.5 Mbps, full-speed devices have a maximum signaling rate of 12 Mbps, and high-speed devices have a maximum signaling rate of 480 Mbps. A SuperSpeed host controller conforming to the USB specifications supports all three earlier classes of devices, as well as SuperSpeed devices.
The USB Specifications provide strict timing guidelines for certain types of communication between a host controller and connected devices. For example, low-level signaling for bus events such as reset events, suspend events, and resume events are driven by signals that use timings that are, for example, shorter than 3 ms. Though the USB Specifications do not mandate any particular maximum cable length, the signaling rate and propagation speed of signals through copper wire limits a distance at which a round trip communication may comply with such timing.
Various methods have been disclosed for effectively overcoming these timing challenges to extend USB communication over longer distances, such as the devices and methods disclosed in commonly owned, co-pending U.S. patent application Ser. No. 13/229,583, incorporated herein by reference in its entirety for all purposes. Though such devices and methods are effective in establishing communication between a host and a USB device, differences in a rate of generation of start-of-frame packets by the host and a rate at which such packets are received by the USB device may cause difficulty when the USB device relies on receipt of such packets to establish a time base, such as for presenting streaming media and/or the like.
What is needed are devices and methods that allow start-of-frame packets to be received by the USB device at a rate that more accurately approximates the rate at which the start-of-frame packets are generated by the host.